package Spiel;
import java.util.Scanner;
public class Metamorphose {
		public static void main ( String[] args ){
			Scanner scan = new Scanner(System.in);
			System.out.println("Willkommen bei Metamorphose");
			System.out.println("Geben Sie ihren Spielernamen 1 ein: ");
			String player1 = scan.next();
			System.out.println("Geben Sie ihren Spielernamen 2 ein: ");
			String player2 = scan.next();
			System.out.println("Feld wird generiert!");
		
			//feld[m][m*2]
			char[][] feld ={{'+','-','-','-','-','-','-','-','-','-','-','-','-','-','+'},
							{'A','X','¦','O','¦','X','¦','O','¦','X','¦','O','¦','X','¦'},
							
							{'¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦'},
							{'B',' ','¦','#','¦',' ','¦','#','¦',' ','¦','#','¦',' ','¦'},
							
							{'¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦'},
							{'C',' ','¦',' ','¦',' ','¦',' ','¦',' ','¦',' ','¦',' ','¦'},
							
							{'¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦'},		
							{'D','#','¦',' ','¦','#','¦',' ','¦','#','¦',' ','¦','#','¦'},
							
							{'¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦'},
							{'E',' ','¦',' ','¦',' ','¦',' ','¦',' ','¦',' ','¦',' ','¦'},
							
							{'¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦'},		
							{'F',' ','¦','#','¦',' ','¦','#','¦',' ','¦','#','¦',' ','¦'},
							
							{'¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦','-','¦'},
							{'G','x','¦','o','¦','x','¦','o','¦','x','¦','o','¦','x','¦'},
							
							{'+','-','-','-','-','-','-','-','-','-','-','-','-','-','+'},
							{' ','1',' ','2',' ','3',' ','4',' ','5',' ','6',' ','7',' '}};
					
			for(int reihe=0; reihe<16; reihe++){
				for(int i=0; i<15; i++){
					System.out.print(feld[reihe][i]);
					}
				System.out.println();
			}
			
			
			boolean gamewin = false;
			boolean gameround = false;
			boolean round = false;
			boolean error = false;
			boolean rechts = false;
			boolean gerade = false;
			boolean geht = true;
			String moveply1 = "A1";
			String targetply1;
			int moveply1int = 0;
			int targetply1int;
			String[] player1arr = {"A1","A2","A3","A4","A5","A6","A7"};
			String[] player2arr = {"G1","G2","G3","G4","G5","G6","G7"};
			String[] stone = {"B2","B4","B4","D1","D3","D5","D7","F2","F5","F7"};	


			while (gamewin == false){
				while (round == false){
					System.out.println("Spieler1 ist dran!");
					for(int reihe=0; reihe<16; reihe++){
						for(int i=0; i<15; i++){
							System.out.print(feld[reihe][i]);
							}
						System.out.println();
					}
					
					while (gameround == false){
		
						error = true;
						
						while (error == true){
							//Testen der Stein auswahl
							System.out.println("Welcher Stein soll bewegt werden?: ");
							moveply1 = scan.next();
							moveply1int = Integer.parseInt(moveply1.substring(moveply1.length()-1));
							for (int arrayint = 0; arrayint != player1arr.length; arrayint++){
								if(moveply1.equals(player1arr[arrayint])){
									error = false;
								}
							}
						}
						error = true;
						
						while (error == true){
							//Testen des möglichen zugs
							// error = true;
							System.out.println("Wohin wollen Sie den Stein verschieben?: ");
							targetply1 = scan.next();
							
							if(targetply1.length() > 2 || targetply1.length() < 2){
								error = false;
							}else{
							
							targetply1int = Integer.parseInt(moveply1.substring(moveply1.length()-1));
							
							int t = 0;
							
							if (targetply1.charAt(0) == 'A'){
								t = 2;}
							else if (targetply1.charAt(0) == 'B'){
								t = 4;}
							else if (targetply1.charAt(0) == 'C'){
								t = 6;}
							else if (targetply1.charAt(0) == 'D'){
								t = 8;}
							else if (targetply1.charAt(0) == 'E'){
								t = 10;}
							else if (targetply1.charAt(0) == 'F'){
								t = 12;}
							else if (targetply1.charAt(0) == 'G'){
								t = 14;}
							
							int m = 0;
							
							if (moveply1.charAt(0) == 'A'){
								m = 2;}
							else if (moveply1.charAt(0) == 'B'){
								m = 4;}
							else if (moveply1.charAt(0) == 'C'){
								m = 6;}
							else if (moveply1.charAt(0) == 'D'){
								m = 8;}
							else if (moveply1.charAt(0) == 'E'){
								m = 10;}
							else if (moveply1.charAt(0) == 'F'){
								m = 12;}
							else if (moveply1.charAt(0) == 'G'){
								m = 14;}
							
							for(int n = stone.length-1; n >= 0 ; n-- ){
								if (targetply1.equals(stone[n])){
									System.out.println("Die Bewegung erzielt eine Kolision mit einem Stein!");
									error = false;
									}
								}
							
							
							
							if (error == true){
							//Enrtscheidung ob es sich um X oder 0 handelt
								if (feld[m-1][moveply1int*2-1] == 'X'){
									
									error = true;
									int n = 0;
									String alife[] = new String[8];
									int count;
									int k = 0;
									//Hier ist nun das Überprüfen der Möglichen Züge für "X" (Nur gerade Züge)
									while (error == true){	
										count = 0;
										
										if (targetply1.charAt(1) == moveply1.charAt(1)&&targetply1.charAt(0) != moveply1.charAt(0)){
											// hier bei handelt es sich um eine Gerade, die nur B.z.: A1, B1, C1 gehen kann.
											
										for(int i = targetply1int-moveply1int; i==0; i--){
											System.out.println(k);
											k++;
											if(feld[m-2+k][moveply1int-targetply1int]!= ' '){
													geht = true;
													}
											
											k++;
											System.out.println("hi");	
											
											
											
										if (geht = true){
											
										}
										}											}	
										}
											for(n=0;n<7;n++){
												count = +1;
												alife[count] = (moveply1.substring(0,1)+(moveply1int-n-1));
												if(feld[m][moveply1int] != '-'||feld[m][moveply1int] != 'x'||feld[m][moveply1int] != 'o'){
													alife[n]= ""; 
													n=7;
												}	
											}	
												
											
											for(int b=(alife.length)-1;b >= 0; b--){
												if (moveply1.equals(alife[b])){
													feld[m][moveply1int]= ' ';
													feld[t][targetply1int]= 'x';
													error = false;
													gameround = true;
													round = true;
													for(int reihe=0; reihe<16; reihe++){
														for(int i=0; i<15; i++){
															System.out.print(feld[reihe][i]);
															}
														System.out.println();
													}	
												}	
											}
											

								if (feld[m][moveply1int*2] == '0'){
								error = true;
								n = 2;
								//Hier ist nun das Überprüfen der Möglichen Züge für "Y" (Nur ungerade Züge)
								while (error = true){
									
									while(error = true){
										if((feld[m+n][ (moveply1int)*2+ n]) == ' ' ) {
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}}}
//String king1 = Integer.parserInt(JOptionPane.showInputDialog(null, "Geben Sie den König ein: "));